// 用于所有的用户获取数据
const express = require('express')
const router = express()
const shop = require('../models/shop.js')
const admin = require('../models/admin.js')
const classify = require('../models/classify.js')
const { generatorToken , verifyToken} = require('../tools//jwt.js')

// 用于获取所有的商品
router.get('/getShop',(req,res) => {
    // 查找数据
    shop.find({}).then((result) => {
        res.send(result)
    })
})

// 登录接口
router.post('/login',(req,res) => {
    var {username,password} = req.body;
    // 用户存在
    // 用户不存在
    // console.log(username,password);
    admin.find({username}).then((result) => {
        if(result.length !== 0) {
            // 用户存在
            var user = result[0];
            // console.log(user);
            if(username == user.username && password == user.password) {
                // console.log(111);
                var token = generatorToken({username,password})
                res.cookie('token' , token , {
                    maxAge : 1000000000
                })
                res.send("用户登录成功")
                
            }
        } else {
            // 用户不存在
            var a = new admin({
                username,
                password,
                cart: []
            })
            a.save().then((reslut) => {
                var token = generatorToken({username,password})
                res.cookie('token' , token , {
                    maxAge : 100000000
                })
                res.send('用户注册成功');
            }).catch((err) => {
                res.send('用户注册失败');
            })
        }
    })
})

// 获取下拉菜单的分类
router.get('/getClassify',(req,res) => {
    classify.find({}).then((result) => {
        res.send(result)
    })
})

// 添加商品接口
router.post('/postShop',(req,res) => {
    var s = new shop(req.body);
    s.save().then((result) => {
        res.send('商品发布成功')
    }).catch((err) => {
        // console.log(err);
        res.send('商品发布失败')
    })
})

// 点击商品获取商品信息
router.post('/getDetail',(req,res) => {
    shop.find({_id:req.body.id}).then((result) => {
        res.send(result)
    }).catch((err) => {
        res.send(err)
    })
})

// 添加到购物车接口
router.post('/addCart',(req,res) => {
    var {username,password} = verifyToken(req.cookies.token)
    // token解密 => 获取到username,password
    // 在这个用户的cart中加入这个数据
    admin.find({username,password}).then((result) => {
        // res.send
        // console.log(result);
        var user = result[0]
        var {cart} = user
        // cart.push(req.body.id);
        shop.find({_id:req.body.id}).then((result) => {
            cart = cart.concat(result)
            // console.log(cart);
            admin.updateOne({username:username},{cart,cart}).then(() => {
                res.send('加入购物车成功')
            })
        })
    })
})

// 获取用户购物车接口
router.get('/getUserCart',(req,res) => {
    var {username,password} = verifyToken(req.cookies.token)
    admin.find({username,password}).then((result) => {
        var user = result[0]
        var {cart} = user
        res.send(cart)
    })
})

// 更新用户购物车数量
router.post('/changeUserCart',(req,res) => {
    var {username,password} = verifyToken(req.cookies.token)
    var {cart} = req.body
    admin.updateOne({username:username},{cart:cart}).then((data) => {
        res.send(cart)
    })
})

module.exports = router